package org.code.util;

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

/**
 * @author xiao
 * <p>
 * 字节数组转字符串
 * <p>
 * 字符串转字节数组
 */
public final class ByteStringConverter {
    /**
     * 设置字符编码
     */
    private static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;

    /**
     * 字节数组转字符串
     *
     * @param byteArray 字节数组
     * @return 字符串
     */
    public static String byteArrayToString(byte[] byteArray) {
        return byteArrayToString(byteArray, DEFAULT_CHARSET);
    }

    /**
     * 字节数组转字符串
     *
     * @param byteArray 字节数组
     * @param charset   字符编码
     * @return 字符串
     */
    public static String byteArrayToString(byte[] byteArray, Charset charset) {
        return new String(byteArray, charset);
    }

    /**
     * 将字符串转字节数组
     *
     * @param str 字符串
     * @return 字节数组
     */
    public static byte[] stringToByteArray(String str) {
        return stringToByteArray(str, DEFAULT_CHARSET);
    }

    /**
     * 将字符串转字节数组
     *
     * @param str     字符串
     * @param charset 字符编码
     * @return 字节数组
     */
    public static byte[] stringToByteArray(String str, Charset charset) {
        return str.getBytes(charset);
    }
}
